#!/usr/bin/env python3
"""
测试修复后的大视频分析
"""
import asyncio
from pathlib import Path
from app.services.large_video_analyzer import LargeVideoAnalyzer

async def test_fixed_analysis():
    """测试修复后的分析功能"""
    try:
        print("🧪 测试修复后的大视频分析...")
        
        # 找到测试视频
        uploads_dir = Path("uploads")
        video_files = list(uploads_dir.glob("*.mp4"))
        
        if not video_files:
            print("❌ 没有找到测试视频")
            return
        
        test_video = video_files[0]
        print(f"📹 使用测试视频: {test_video.name}")
        
        # 初始化分析器
        analyzer = LargeVideoAnalyzer()
        
        # 执行分析（使用较小的参数以快速测试）
        result = await analyzer.analyze_large_video(
            video_path=test_video,
            prompt="请简单描述这个视频",
            split_method="duration",
            segment_duration=30,
            max_segments=2,
            analysis_mode="sequential",
            min_segment_duration=5
        )
        
        print("✅ 分析完成!")
        print(f"📊 结果类型: {result.get('type', 'unknown')}")
        print(f"📊 片段数量: {result.get('segment_count', 0)}")
        print(f"📊 成功分析: {result.get('successful_segments', 0)}")
        
        if result.get('overall_summary'):
            print(f"📝 整体摘要: {result['overall_summary'][:100]}...")
        
        # 显示片段结果
        if result.get('segment_results'):
            print(f"📋 片段分析结果:")
            for i, segment_result in enumerate(result['segment_results'][:2]):  # 只显示前2个
                status = segment_result.get('status', 'unknown')
                print(f"   片段 {i+1}: {status}")
                if segment_result.get('analysis_result'):
                    content = segment_result['analysis_result'][:80]
                    print(f"   内容: {content}...")
        
        return True
        
    except Exception as e:
        print(f"❌ 测试失败: {e}")
        import traceback
        traceback.print_exc()
        return False

if __name__ == "__main__":
    asyncio.run(test_fixed_analysis())